﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using Model_Layer;

namespace WcfFlightRoutingService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        Flight GetSelectedFlight(int idflight);

        [OperationContract]
        Airport GetSelectedAirport(int idairport);

        [OperationContract]
        List<Airport> GetAllAirports();

        [OperationContract]
        List<Airport> SearchAllAirports(string search);

        [OperationContract]
        List<Flight> GetAllFlights(bool retrieveAssociation);

        [OperationContract]
        List<Flight> GetCriteriaFlights(string wClause, bool retrieveAssociation);

        [OperationContract]
        List<Airport> GetAdjAirportList(int idairport);

        [OperationContract]
        List<int> GetAdjIdAirportList(int idairport);

        [OperationContract]
        List<Airport> RunDijkstra(Airport source, Airport target, string wClause, int deviationDays);

        [OperationContract]
        List<Airport> RunBllDijkstra(Airport source, Airport target, string wClause);

        //[OperationContract]
        //List<Airport> BacktrackDijkstra(Airport target, List<Airport> dijkstraSolutionList);
    }
}
